<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>


<script>
    /**
     * 代码的执行结果
     * 注意: 当有主线程在执行同步任务时, 遇到异步任务, 会提交给对应的异步进程处理
     * .        异步进程会判断这个异步任务是否符合进入任务队列的条件,
     *          如 click 事件, 只有发生了点击事件才有资格, 然后才能放进任务队列
     *          定时器任务 setTimeout(fn, 3000), 3S后才资格进入任务队列
     *
     * 下面的所有执行结果为
     * 1 -> 2 -> 3              未发生click事件
     * 1 -> 2 -> 3 -> click     发生click事件, 且在三秒后点击
     * 1 -> 2 -> click -> 3     发生click事件, 且在三秒前点击
     *
     */

    console.log(1);
    document.onclick = function () {
        console.log('click');
    }

    setTimeout(function () {
        console.log(3)
    }, 3000)
    console.log(2);
</script>
</body>
</html>
